package com.yc.cloud.openai.portal.dto.request;

import com.yc.cloud.openai.portal.enums.ImageStyle;
import com.yc.cloud.openai.portal.enums.TextToImageProvider;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Data
@Schema
public class TextToImageRequest {

    @Schema(description = "客户端ID", example = "37dfd6f6b0784d6d8f9526d94e8cc4dc")
    private String clientId;

    @Schema(description = "提示词,目前只支持英文", example = "a dog", required = true)
    @NotEmpty(message = "提示词不能为空")
    private String prompt;

    @Schema(description = "提供者", example = "1", defaultValue = "1", hidden = true, allowableValues = {"1", "2"})
    @NotNull(message = "提供者不能为空")
    private TextToImageProvider provider = TextToImageProvider.COMFY_UI;

    @Schema(description = "图片宽度", defaultValue = "512", example = "512", required = true)
    @NotNull(message = "图片宽度不能为空")
    private Integer width;

    @Schema(description = "图片高度", defaultValue = "512", example = "512", required = true)
    private Integer height;


    @Schema(description = "风格", example = "CUTE_3D", defaultValue = "CUTE_3D", required = true, allowableValues = {"CUTE_3D", "HAYAO_MIYAZAKI", "CYBERPUNK", "REALISTIC", "FILM","ASIAN_GIRL"})
    private ImageStyle style;

    @Schema(description = "生图模式,1->快速模式,2->精细模式", example = "1")
    private String mode;


}
